home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-09-11 | 43.9 KB | 1,801 lines |
- #!/bin/sh
- # $Header: /usr/people/sam/tiff/RCS/configure,v 1.48 1996/04/26 03:36:20 sam Rel $
- #
- # Tag Image File Format (TIFF) Software
- #
- # Copyright (c) 1988-1996 Sam Leffler
- # Copyright (c) 1991-1996 Silicon Graphics, Inc.
- #
- # Permission to use, copy, modify, distribute, and sell this software and
- # its documentation for any purpose is hereby granted without fee, provided
- # that (i) the above copyright notices and this permission notice appear in
- # all copies of the software and related documentation, and (ii) the names of
- # Sam Leffler and Silicon Graphics may not be used in any advertising or
- # publicity relating to the software without the specific, prior written
- # permission of Sam Leffler and Silicon Graphics.
- #
- # THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
- # EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- # WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- #
- # IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
- # ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- # OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- # WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
- # LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- # OF THIS SOFTWARE.
- #
-
- # Configuration script for the TIFF Software
-
- #
- # Shell script to setup machine-dependent files in
- # preparation for building TIFF source.
- #
-
- POSIXLY_CORRECT=1; export POSIXLY_CORRECT # disable GNU extensions
-
- QUIET=no # suppress messages to tty
- NONINTERACTIVE=no # control prompting of config params
- SITE= # dir where config.site is located
- TARGET= # target system identity
- SRCDIR= # dir where source is located
-
- #
- # Setup general configuration parameters.
- #
- DIR_BIN=/usr/local/bin # destination for applications
- DIR_LIB=/usr/local/lib # destination for library
- DIR_INC=/usr/local/include # destination for include files
- DIRS_LIBINC= # dirs to search for ancillary includes
- DIR_JPEGLIB= # dir for IJG -ljpeg
- DIR_GZLIB= # dir for zlib -lgz
- DSO=auto # auto-enable DSO support
- LIBCOPTS= # library-specific C-compiler options
- JPEG=no # configure JPEG support
- ZIP=no # configure ZIP/Deflate support
- PORT=auto # enable portability emulations
- LIBGL=auto # auto-enable build of SGI -lgl apps
- LIBIMAGE=auto # auto-enable build of SGI -limage apps
- MACHDEPLIBS=-lm # machine-dependent libraries for apps
- : ${CC=} # name of C compiler to use
- : ${CCOMPILER=} # full pathname of C compiler
- : ${ENVOPTS=} # CC opts for ANSI C compilation
- : ${MAKE=make} # make to use
-
- # screws up the test of `-f -'
- : ${MAKEFLAGS=} # unset MAKEFLAGS
- RM="rm -f"
-
- #
- # Error diagnostics that should go to the terminal are
- # done with this interface (or cat).
- #
- bitch()
- {
- echo "configure: $@" 1>&2
- }
-
- #
- # This is the preferred interface for
- # configure to terminate abnormally.
- #
- boom()
- {
- bitch ""
- bitch "Unrecoverable error! Once you've corrected the problem rerun this script."
- kill -1 $$ # use kill so trap handler is called
- }
-
- usage()
- {
- cat<<'EOF'
- Usage: configure [options] [host]
- Options: [defaults in brackets after descriptions]
- --help print this message
- --quiet do not print `Using ...' messages
- --verbose opposite of --quiet
- --noninteractive don't ask any questions
- --version print the version of autoconf that created configure
- --target=TARGET configure for TARGET [TARGET=HOST]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --with-PARAM[=ARG] set configuration PARAM [ARG=yes]
- EOF
- }
-
- #
- # Crack command line arguments. We purposely
- # use syntax and options that are compatible
- # with GNU autoconf.
- #
- ac_prev=
- for ac_option
- do
- if [ -n "$ac_prev" ]; then # assign the argument to previous option
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
- case "$ac_option" in # collect optional argument
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'`;;
- *) ac_optarg=;;
- esac
- case "$ac_option" in
- -with-*|--with-*)
- ac_with=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if [ -n "`echo $ac_with| sed 's/[-_a-zA-Z0-9]//g'`" ]; then
- bitch "configure: $ac_with: invalid parameter name."
- kill -1 $$
- fi
- ac_with=`echo $ac_with| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes;;
- esac
- eval "${ac_with}='$ac_optarg'"
- ;;
- -quiet|--quiet) QUIET=yes;;
- -verbose|--verbose) QUIET=no;;
- -noninteractive|--noninteractive) NONINTERACTIVE=yes;;
- -site|--site) ac_prev=SITE;;
- -site=*|--site=*) SITE="$ac_optarg";;
- -srcdir|--srcdir) ac_prev=SRCDIR;;
- -srcdir=*|--srcdir=*) SRCDIR="$ac_optarg";;
- -target|--target) ac_prev=TARGET;;
- -target=*|--target=*) TARGET="$ac_optarg" ;;
- -version|--version)
- echo "This is TIFF configure $Revision: 1.48 $"
- exit 0
- ;;
- -help|--help) usage; exit 0;;
- -*)
- bitch "configure: $ac_option: invalid option; use -help for usage."
- kill -1 $$
- ;;
- *)
- if [ x"$TARGET" != x ]; then
- bitch "configure: Can only configure for one target at a time."
- kill -1 $$
- fi
- TARGET="$ac_option"
- ;;
- esac
- done
-
- if [ -n "$ac_prev" ]; then
- bitch "configure: missing argument to --`echo $ac_prev | sed 's/_/-/g'`"
- kill -1 $$
- fi
-
- #
- # Locate source directory by looking for the VERSION file.
- # The directory must either be specified through the
- # environment or be located in the current directory or a
- # parent of the current directory.
- #
- test "$SRCDIR" || {
- configure=$0
- # NB: don't use dirname since it may not exist
- SRCDIR=`echo $configure | sed 's;/[^/][^/]*$;;'`
- if [ @"$SRCDIR" = @"$configure" ]; then
- SRCDIR=.
- fi
- while [ ! -r $SRCDIR/VERSION ]; do
- # strip last directory from pathname
- newdir=`echo $SRCDIR | sed 's;/[^/]*$;;'`
- if [ -z "$newdir" ] || [ "$newdir" = $SRCDIR ]; then
- break;
- fi
- SRCDIR=$newdir
- done
- }
- if [ ! -r $SRCDIR/VERSION ]; then
- bitch "Cannot locate sources in $SRCDIR."
- kill -1 $$
- fi
- SRCDIR=`echo "$SRCDIR" | sed 's;\([^/]\)/*$;\1;'`
-
- if [ -r ${SRCDIR}/tif_version.c ] ; then
- SRCDIR_IS_LIBTIFF=yes
- PORTDOTH=port.h
- else
- SRCDIR_IS_LIBTIFF=no
- PORTDOTH=libtiff/port.h
- fi
-
- #
- # Descriptor usage:
- # 1: ???
- # 2: errors that should be seen even if we're in the background.
- # 3: [stdout from test runs]
- # 4: verbose-style messages (Using ...)
- # 5: compiler stderr when running tests
- #
- if [ $QUIET = yes ]; then
- exec 4>/dev/null # chuck messages
- else
- exec 4>&1 # messages got to stdout
- fi
- exec 5>./config.log # compiler messages and the like
-
- capture()
- {
- (eval "set -x; $*") >&5 2>&1
- return
- }
- captureX()
- {
- (eval "set -x; $*") 2>&5
- return
- }
-
- date >&5
- echo Running "$0" with arguments: "$@" >&5
-
- cat 1>&5 <<'EOF'
-
- This file contains information that is captured from running the configure
- script. Lines that begin with a "+" are command lines echoed by the
- shell. Other lines are the output of commands; usually the contents of
- test case files or the output from compilers. If configure does the
- wrong thing, you can use the information captured here to aid in debugging.
-
- EOF
-
- if [ -r $SRCDIR/tiff.alpha ] ; then
- VERSIONFILE=$SRCDIR/VERSION
- ALPHAFILE=$SRCDIR/tiff.alpha
- else
- VERSIONFILE=$SRCDIR/VERSION
- ALPHAFILE=$SRCDIR/dist/tiff.alpha
- fi
- VERSION="v`cat $VERSIONFILE``awk '{print $3}' $ALPHAFILE`"
- DATE=`date`
-
- DIST_MAJOR=`echo $VERSION | sed 's/v\([0-9][0-9]*\)\..*/\1/'`
- DIST_MINOR=`echo $VERSION | sed 's/v.*\.\([0-9][0-9]*\).*/\1/'`
- DIST_ALPHA=`echo $VERSION | sed -e 's/.*beta//' -e 's/.*release//'`
-
- Note()
- {
- echo "$@" 1>&4
- }
-
- Note ""
- if [ $SRCDIR_IS_LIBTIFF = yes ] ; then
- Note "Configuring TIFF Software (library only) $VERSION."
- else
- Note "Configuring TIFF Software $VERSION."
- fi
-
- Note ""
- Note "If configure does the wrong thing, check the file config.log for"
- Note "information that may help you understand what went wrong."
- Note ""
-
- #
- # Read site and local configuration parameters.
- #
- if [ -f $SITE/config.site ]; then
- Note "Reading site-wide parameters from $SITE/config.site."
- . $SITE/config.site
- capture . $SITE/config.site
- elif [ -f $SRCDIR/config.site ]; then
- Note "Reading site-wide parameters from $SRCDIR/config.site."
- . $SRCDIR/config.site
- capture . $SRCDIR/config.site
- fi
- if [ -f config.local ]; then
- Note "Reading local parameters from config.local."
- . ./config.local
- capture . ./config.local
- elif [ -f $SRCDIR/config.local ]; then
- Note "Reading local parameters from $SRCDIR/config.local."
- . $SRCDIR/config.local
- capture . $SRCDIR/config.local
- fi
-
- #
- # Emulate old-style settups...
- #
- test -z "${DIR_JPEG-}" || {
- DIRS_LIBINC="${DIRS_LIBINC} ${DIR_JPEG}"
- DIR_JPEGLIB="${DIR_JPEG}"
- }
- test -z "${DIR_LIBGZ-}" || {
- DIRS_LIBINC="${DIRS_LIBINC} ${DIR_LIBGZ}"
- DIR_GZLIB="${DIR_LIBGZ}"
- }
-
- identifyTarget()
- {
- random=`date | awk '{print $4}' | sed -e 's/.*://'` 2>/dev/null
- case "$random" in
- *0) Note "Wow, you've got a $1 system!";;
- *1) Note "Hmm, looks like a $1 system.";;
- *2) Note "Oh no, not another $1 system...";;
- *3) Note "Well I'll be, a $1 system.";;
- *4) Note "Fee, fie, foe, this smells like a $1 system.";;
- *5) Note "Gosh, aren't you lucky to have a $1 system!";;
- *6) Note "YOW!! Did something bad happen or am I on a $1 system?";;
- *7) Note "Do they really still make $1 systems?!";;
- *8) Note "I'm always happy to encounter another $1 system.";;
- *9) Note "Here we are again, this time on a $1 system.";;
- esac
- }
-
- #
- # If no target is specified, try to deduce the system.
- # We use the GNU scripts for guessing and canonicalizing
- # the system identification, if available.
- #
- if [ -z "$TARGET" ]; then
- test -f $SRCDIR/config.guess && TARGET=`sh $SRCDIR/config.guess` 2>/dev/null
- if [ -z "$TARGET" ]; then
- bitch "Sorry, no target specified on the command line and I don't seem"
- bitch "to have the GNU config.guess script that is used to deduce your"
- bitch "system type."
- kill -1 $$
- fi
- identifyTarget $TARGET
- elif [ -f $SRCDIR/config.sub ]; then
- TARGET=`sh $SRCDIR/config.sub "$TARGET"`
- else
- Note "Warning, I don't seem to have the GNU config.sub script to canonicalize"
- Note "your target specification; this may cause problems later on..."
- fi
- if [ -z "${FILLORDER-}" ]; then
- #
- # Host bit order within a word.
- #
- case $TARGET in
- mips-dec-*) FILLORDER=LSB2MSB;;
- i[345]86-*) FILLORDER=LSB2MSB;;
- *) FILLORDER=MSB2LSB;;
- esac
- fi
-
- #
- # Find the full pathname of a file
- # using the specified test operation.
- #
- findThing()
- {
- t="$1"; app="$2"; path="$3";
- case "$app" in
- /*) eval "$t" "$app" && { echo "$app"; return; };;
- esac
- (IFS=:
- for i in $path; do
- eval "$t" "$i/$app" && { echo "$i/$app"; return 0; }
- done
- return 1
- )
- }
-
- #
- # Find the full pathname of a plain file.
- #
- findFile()
- {
- findThing "test -f" "$1" "$2"
- }
-
- #
- # Find the full pathname of an executable.
- #
- findApp()
- {
- findThing "test -x" $1 $2
- }
-
- #
- # Find the full pathname of an executable;
- # supply a default if nothing is found.
- #
- findAppDef()
- {
- app=$1; path=$2; def=$3
- case $app in
- /*) test -x $app && { echo $app; return; };;
- esac
- IFS=:
- for i in $path; do
- test -x $i/$app && { echo $i/$app; return; }
- done
- echo $def
- }
-
- #
- # Find the full pathname of a header file; in search-path $DIRS_LIBINC
- #
- findHeader()
- {
- case "$1" in
- /*) echo "$1"; return ;;
- esac
- for i in ${DIRS_LIBINC} /usr/include; do
- test -r $i/$1 && {
- case "$i" in
- /*) echo "$i/$1"; return ;;
- esac
- if [ $SRCDIR_IS_LIBTIFF = yes ]; then
- echo "$i/$1";
- else
- echo "../$i/$1";
- fi
- return;
- }
- done
- }
-
- #
- # Locate a C compiler that satisfies our needs (using assorted heuristics).
- #
- JUNK="
- a.out
- confsed
- conftestmmap
- confx confy
- confMakefile
- core
- dummy
- dummy.a
- dummy.c
- dummy.o
- foo
- so_locations
- t.c
- t.o
- t
- xMakedepend
- xdefs
- xgnu.c
- xmakeinc
- xport.h
- "
- trap "$RM \$JUNK; exit 1" 1 2 15
-
- $RM $JUNK
-
- cat>xgnu.c<<EOF
- #ifdef __GNUC__
- yes;
- #endif
- EOF
-
- #
- # Check if the specified compiler is from GNU
- #
- isGNU()
- {
- capture "cat xgnu.c; ($1 -E xgnu.c 2>&5 | egrep yes)"
- }
-
- #
- # NB: use ANSI C prototype to weed out non-ANSI compilers.
- #
- cat>dummy.c<<EOF
- main(int argc, char* argv) { exit(0); }
- EOF
-
- checkCompiler()
- {
- compiler=$1
- if isGNU $compiler; then
- ISGCC=yes
- else
- ISGCC=no
- fi
- #
- # Guess special options needed to get an
- # ANSI C compiler and/or similar. Must
- # be combined with above checks so we only
- # select an ANSI C compiler.
- #
- if [ -z "${ENVOPTS-}" ]; then
- case $ISGCC-$TARGET in
- no-*-irix*) C_ANSI="-ansi";;
- no-*-hp*) C_ANSI="-Aa -D_HPUX_SOURCE -Dhpux";;
- no-*-apollo-*) C_ANSI="-A nansi";;
- no-*-aix*) C_ANSI="-Dunix -qlanglvl=ansi -qsrcmsg";;
- *-sco*) C_ANSI="-Dsco";;
- esac
- else
- C_ANSI="$ENVOPTS"
- fi
- $RM dummy dummy.o
- capture $compiler -o dummy ${C_ANSI} dummy.c && {
- CC=$compiler;
- test -z "${CCOMPILER-}" && CCOMPILER=`findApp $compiler $PATH`
- test -z "${ENVOPTS-}" && ENVOPTS="${C_ANSI-}"
- return 0
- }
- return 1
- }
-
- CCtested=
- capture cat dummy.c
- if [ -z "${CC-}" ]; then
- CCOMPILER=
- for i in gcc cc ncc dcc xlc c89 gcc2; do
- CCtested="$CCtested $i"
- checkCompiler $i && break
- done
- else
- CCtested="$CCtested $CC"
- checkCompiler $CC
- fi
- if [ -z "$CCOMPILER" ]; then
- cat<<EOF
-
- Cannot locate a working ANSI C compiler.
-
- We attempted to compile the following test program:
-
- ----------------------------------------------------------
- EOF
- cat dummy.c
- cat<<EOF
- ----------------------------------------------------------
-
- with these compilers:
-
- $CCtested
-
- but none of them were successful.
-
- If your compiler is in a non-standard location, you can specify its
- location in several ways:
-
- o set the environment variable CC
- o create a config.local or config.site file that includes a
- definition for CC
- o supply it on the command line using -with-CC=<pathname>
-
- If command line options are required for ANSI C compilation, set the
- ENVOPTS parameter to these options in a similar way (either through
- an environment variable or config.local/config.site) and then rerun
- this script.
- EOF
- boom
- fi
- Note "Using $CCOMPILER for a C compiler (use -with-CC=compilername to override)."
-
- test "$ENVOPTS" && {
- Note "Using $ENVOPTS to get the appropriate compilation environment."
- }
-
- if [ ${ISGCC} = yes ] ; then
- GCCversion="`${CCOMPILER} -v 2>&1 | \
- sed -n -e '/version/s/.* \([0-9]*\)\.\([0-9]*\).\([0-9]*\)/\1.\2.\3/p'`"
- fi
-
-
- CheckForGandO()
- {
- f=$1
- if test -s $f; then
- capture grep -i \(error\|warning\) $f || return 1
- fi
- return 0
- }
-
- if [ -z "${GCOPTS-}" ]; then
- if capture $CCOMPILER $ENVOPTS -g -c dummy.c; then
- Note "Looks like $CCOMPILER supports the -g option."
- # NB: cannot use captureX here 'cuz we lose stderr
- if $CCOMPILER $ENVOPTS -c -g -O dummy.c >t 2>&1 && CheckForGandO t; then
- GCOPTS="-g"
- else
- Note "... but not together with the -O option, not using it."
- GCOPTS=
- fi
- else
- GCOPTS=
- fi
- fi
- if [ ! -z "${GCOPTS}" ]; then
- Note "Using \"$GCOPTS\" for C compiler options."
- fi
-
- #
- # Verify that $MAKE is accessible
- #
- PATHMAKE=`findApp ${MAKE} $PATH`
- if [ "$PATHMAKE" ]; then
- Note "Using $PATHMAKE to configure the software."
- (echo 'all:') | ${MAKE} -f - all >/dev/null 2>&5 || {
- cat<<EOF
-
- Something is wrong with "$MAKE" or $MAKE does not accept Makefiles
- from stdin with "-f -". If you have MAKE set in your environment,
- verify it points to the right program you want to" use to build this
- software. Otherwise, verify that you have the make program installed
- somewhere on your system and set the MAKE environment variable to the
- pathname of the program.
- EOF
- boom
- }
- else
- cat<<EOF
- No $MAKE located in the search path.
-
- There was no $MAKE program in the restricted search used by this script
- If $MAKE is in a non-standard location set the MAKE environment variable
- to the pathname of the appropriate program.
- EOF
- boom
- fi
-
- #
- # Check whether or not $MAKE automatically sets MAKE
- # in the Makefiles. If not, we add an explicit define
- # for places where recursive calls are made.
- #
- if [ -z "${SETMAKE-}" ]; then
- if (cat<<'EOF'
- SHELL=/bin/sh
- all:
- @if [ -n "${MAKE}" ] ; then echo "make sets make" ; fi
- EOF
- ) | $MAKE -f - | grep "make sets make" > /dev/null ; then
- SETMAKE=
- else
- Note "Looks like $MAKE does not setup MAKE in Makefiles, will compensate."
- SETMAKE="MAKE = ${MAKE}"
- fi
- fi
-
- test -z "${AR-}" && AR=`findApp ar $PATH`
- if [ -z "$AR" ]; then
- Note "*** Warning, could not locate a suitable ar command; using a default."
- AR=ar
- fi
- test -z "${AROPTS-}" && AROPTS=rc
- test -z "${RANLIB-}" && RANLIB=`findApp ranlib $PATH`
- if [ -z "$RANLIB" ]; then
- Note "Warning, no ranlib, assuming it's not needed."
- RANLIB=":"
- $RM dummy.a
- if $AR rcs dummy.a >/dev/null 2>&1; then
- AROPTS=crs
- Note "Looks like ar has an s option to build symbol tables."
- fi
- fi
-
- #
- # runMake target rules ...
- #
- runMakeX()
- {
- target="$1"; shift
- $RM $target
- (echo SRCDIR=.
- for i in "$@"; do
- echo "$i";
- done
- )>confMakefile
- captureX ${MAKE} -f confMakefile $target
- return
- }
- runMake()
- {
- runMakeX "$@" >&5
- return
- }
-
- #
- # Look for a library using a known (unique) function.
- #
- CheckForLibrary()
- {
- f=$1; shift
- libs="$@";
- cat>t.c<<EOF
- int t() { $f(); return 0; }
- int main(){ t(); return 0; }
- EOF
- runMake t "t:; ${CCOMPILER} ${ENVOPTS} t.c $libs"
- }
-
- #
- # Look for an include file.
- #
- CheckForIncludeFile()
- {
- (for i do
- echo "#include \"$i\""
- done)>t.c
- runMake t "t:; ${CCOMPILER} ${ENVOPTS} -E t.c"
- }
-
- #
- # Figure out if certain system-specific interfaces are
- # supported. We craft a port.h file that has external
- # declarations for missing routines that are required by
- # the system and modify defs to reflect which optional
- # interfaces are supported.
- #
-
- EmitCPlusPlusPrologue()
- {
- echo '/*'
- echo ' * Warning, this file was automatically created by the TIFF configure script'
- echo ' * VERSION: ' $VERSION
- echo ' * DATE: ' $DATE
- echo ' * TARGET: ' $TARGET
- if [ $ISGCC = yes ]; then
- echo ' * CCOMPILER: ' ${CCOMPILER}-${GCCversion}
- else
- echo ' * CCOMPILER: ' $CCOMPILER
- fi
- echo ' */'
- echo "#ifndef $1"
- echo "#define $1 1"
- echo '#ifdef __cplusplus'
- echo 'extern "C" {'
- echo '#endif'
- }
-
- EmitCPlusPlusEpilogue()
- {
- echo '#ifdef __cplusplus'
- echo '}'
- echo '#endif'
- echo '#endif'
- }
-
- #
- # Look for a function in one of the standard libraries
- # or one of the machine-dependent libraries selected above.
- #
- CheckForFunc()
- {
- echo "extern int $1(); main(){$1();exit(0);}" >t.c
- runMake t "t:; ${CCOMPILER} ${ENVOPTS} t.c ${MACHDEPLIBS}"
- }
-
- #
- # Look for a function declaration in system include files.
- #
- AddFuncDecl()
- {
- echo "$2";
- Note "... add function prototype for $1"
- }
- CheckForFuncDecl()
- {
- f=$1; shift
- (for i do
- echo "#include \"$i\""
- done)>t.c
- capture cat t.c
- runMakeX t "t:; ${CCOMPILER} ${ENVOPTS} -E t.c" |\
- awk '{while($0~/[,(][ \t]*$/){printf"%s",$0;getline}print}' |\
- grep "$f[ ]*(.*)" >&5
- return
- }
- CheckFuncDecl()
- {
- f=$1; shift
- decl=$1; shift
- CheckForFuncDecl "$f" "$@" || AddFuncDecl "$f" "$decl"
- }
-
- #
- # Look for a variable declaration in system include files.
- #
- CheckForVarDecl()
- {
- v="$1"; shift
- (for i do
- echo "#include \"$i\""
- done)>t.c
- capture cat t.c
- runMakeX t "t:; ${CCOMPILER} ${ENVOPTS} -E t.c" | grep "$v" >&5
- return
- }
- CheckVarDecl()
- {
- v="$1"; shift
- decl="$1"; shift
- CheckForVarDecl "$v" "$@" || \
- (echo "$decl"; Note "... add declaration $decl")
- }
-
- #
- # Look for a #define in system include files.
- #
- AddDefine()
- {
- echo '#ifndef' $1
- echo '#define' "$2"
- echo '#endif'
- Note '... add #define for' "$1"
- }
- CheckForDefine()
- {
- def=$1; shift
- (for i do
- echo "#include \"$i\""
- done
- echo "#ifdef $def"
- echo "FOUND();"
- echo "#endif"
- )>t.c
- capture cat t.c
- runMakeX t "t:; ${CCOMPILER} ${ENVOPTS} -E t.c" | grep FOUND >&5
- }
- CheckDefine()
- {
- def=$1; shift
- decl=$1; shift
- CheckForDefine "$def" "$@" || AddDefine "$def" "$decl"
- }
-
- CheckForMMAP()
- {
- if CheckForFunc getpagesize; then
- cat>t.c<<'EOF'
- /* this was lifted from GNU autoconf */
- /* Thanks to Mike Haertel and Jim Avera for this test. */
- #include <sys/types.h>
- #include <fcntl.h>
- #include <sys/mman.h>
- EOF
- else
- cat>t.c<<'EOF'
- /* this was lifted from GNU autoconf */
- /* Thanks to Mike Haertel and Jim Avera for this test. */
- #include <sys/types.h>
- #include <fcntl.h>
- #include <sys/mman.h>
-
- #ifdef BSD
- # ifndef BSD4_1
- # define HAVE_GETPAGESIZE
- # endif
- #endif
-
- #ifndef HAVE_GETPAGESIZE
- # include <sys/param.h>
- # ifdef EXEC_PAGESIZE
- # define getpagesize() EXEC_PAGESIZE
- # else
- # ifdef NBPG
- # define getpagesize() NBPG * CLSIZE
- # ifndef CLSIZE
- # define CLSIZE 1
- # endif
- # else
- # ifdef NBPC
- # define getpagesize() NBPC
- # else
- # define getpagesize() PAGESIZE /* SVR4 */
- # endif
- # endif
- # endif
- #endif
- EOF
- fi
- cat>>t.c<<'EOF'
- #if defined(__osf__) || defined(_AIX)
- # define valloc malloc
- #endif
- char *valloc(), *malloc();
-
- int
- main()
- {
- char *buf1, *buf2, *buf3;
- int i = getpagesize(), j;
- int i2 = getpagesize()*2;
- int fd;
-
- buf1 = (char *)valloc(i2);
- buf2 = (char *)valloc(i);
- buf3 = (char *)malloc(i2);
- for (j = 0; j < i2; ++j)
- *(buf1 + j) = rand();
- fd = open("conftestmmap", O_CREAT | O_RDWR, 0666);
- write(fd, buf1, i2);
- mmap(buf2, i, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_PRIVATE, fd, 0);
- for (j = 0; j < i; ++j)
- if (*(buf1 + j) != *(buf2 + j))
- exit(1);
- lseek(fd, (long)i, 0);
- read(fd, buf2, i); /* read into mapped memory -- file should not change */
- /* (it does in i386 SVR4.0 - Jim Avera, jima@netcom.com) */
- lseek(fd, (long)0, 0);
- read(fd, buf3, i2);
- for (j = 0; j < i2; ++j)
- if (*(buf1 + j) != *(buf3 + j))
- exit(1);
- exit(0);
- }
- EOF
- capture cat t.c
- runMake t "t:; ${CCOMPILER} ${ENVOPTS} t.c ${MACHDEPLIBS}" && ./a.out
- }
-
- CheckForBigEndian()
- {
- echo 'main() { int one = 1; char* cp = (char*)&one; exit(*cp!=0); }'>t.c
- capture cat t.c
- runMake t "t:; ${CCOMPILER} ${ENVOPTS} t.c" && ./a.out
- }
-
- #
- # Check an existing port.h to see if it was created
- # for the target and compiler we are using.
- #
- CheckPortDotH()
- {
- getConfigTag()
- {
- param=`grep "$1:" $2 | sed -e 's/.*:[ ]*\([^ ]*\).*/\1/'`
- }
- getConfigTag TARGET $PORTDOTH; target="$param"
- getConfigTag CCOMPILER $PORTDOTH; ccompiler="$param"
- CCOMP=$CCOMPILER
- if [ $ISGCC = yes ]; then
- CCOMP="${CCOMP}-${GCCversion}"
- fi
- test "$target" = "$TARGET" && test "$ccompiler" = "$CCOMP"
- }
-
- #
- # Built port.h based on the system and compiler setup.
- #
- BuildPortDotH()
- {
- Note ""
- Note "Creating $PORTDOTH with necessary definitions."
-
- (EmitCPlusPlusPrologue _PORT_
-
- CheckForIncludeFile sys/types.h && echo '#include <sys/types.h>'
- CheckVarDecl off_t 'typedef long off_t;' sys/types.h stdlib.h
- CheckVarDecl size_t 'typedef unsigned size_t;' sys/types.h stdlib.h
- CheckVarDecl u_char 'typedef unsigned char u_char;' sys/types.h
- CheckVarDecl u_short 'typedef unsigned short u_short;' sys/types.h
- CheckVarDecl u_int 'typedef unsigned int u_int;' sys/types.h
- CheckVarDecl u_long 'typedef unsigned long u_long;' sys/types.h
-
- echo "#define HOST_FILLORDER FILLORDER_${FILLORDER}"
- CPU=`echo $TARGET | sed 's/-.*//'`
- Note "... using $FILLORDER bit order for your $CPU cpu"
- if CheckForBigEndian; then
- echo "#define HOST_BIGENDIAN 1"
- Note "... using big-endian byte order for your $CPU cpu"
- else
- echo "#define HOST_BIGENDIAN 0"
- Note "... using little-endian byte order for your $CPU cpu"
- fi
-
- CheckForMMAP && {
- echo '#define HAVE_MMAP 1'
- Note "... configure use of mmap for memory-mapped files"
- CheckFuncDecl mmap \
- 'extern void* mmap(void*, size_t, int, int, int, off_t);' sys/mman.h
- }
-
- CheckForIncludeFile stdio.h && echo '#include <stdio.h>'
- CheckForIncludeFile unistd.h && echo '#include <unistd.h>'
- CheckForIncludeFile string.h && echo '#include <string.h>'
- CheckForIncludeFile stdlib.h && echo '#include <stdlib.h>'
- if CheckForDefine O_RDONLY fcntl.h; then
- echo '#include <fcntl.h>'
- Note "... O_RDONLY is in <fcntl.h>"
- elif CheckForDefine O_RDONLY sys/file.h; then
- echo '#include <sys/file.h>'
- Note "... O_RDONLY is in <sys/file.h>"
- else
- AddDefine O_RDONLY "O_RDONLY 0"
- AddDefine O_WRONLY "O_WRONLY 1"
- AddDefine O_RDWR "O_RDWR 2"
- fi
-
- echo 'typedef double dblparam_t;'
- Note "... using double for promoted floating point parameters"
-
- if [ -z "${INLINE-}" ]; then
- if [ $ISGCC = yes ]; then
- echo '#ifdef __STRICT_ANSI__'
- echo '#define INLINE __inline__'
- echo '#else'
- echo '#define INLINE inline'
- echo '#endif'
- Note "... enabling use of inline functions"
- else
- echo '#define INLINE'
- Note "... disabling use of inline functions"
- fi
- else
- echo "#define INLINE $INLINE"
- Note "... using \"$INLINE\" to control inline function usage"
- fi
-
- echo '#define GLOBALDATA(TYPE,NAME) extern TYPE NAME'
-
- CheckFuncDecl memset 'extern void* memset(void*, int, size_t);' string.h
- CheckFuncDecl floor 'extern double floor(double);' math.h
- CheckFuncDecl ceil 'extern double ceil(double);' math.h
- CheckFuncDecl exp 'extern double exp(double);' math.h
- CheckFuncDecl pow 'extern double pow(double, double);' math.h
- CheckFuncDecl read 'extern int read(int, const void*, unsigned int);' unistd.h
- CheckFuncDecl malloc 'extern void* malloc(size_t);' stdlib.h
- CheckFuncDecl realloc 'extern void* realloc(void*, size_t);' stdlib.h
- CheckFuncDecl free 'extern void free(void*);' stdlib.h
- EmitCPlusPlusEpilogue
- )>xport.h
- if [ $SRCDIR_IS_LIBTIFF = no -a ! -d libtiff ]; then
- Note "Creating libtiff directory"
- mkdir libtiff
- fi
- mv xport.h $PORTDOTH; chmod 444 $PORTDOTH
- Note "Done creating $PORTDOTH."
- }
-
- if [ "$PORT" != no ] && test -f $PORTDOTH && CheckPortDotH; then
- Note ""
- Note "Using previously created $PORTDOTH."
- else
- $RM xport.h t.c a.out $PORTDOTH
- BuildPortDotH
- fi
-
- if [ "$PORT" = auto ]; then
- Note ""
- Note "Checking system libraries for functionality to emulate."
-
- FUNCS="
- strcasecmp
- strtoul
- getopt
- "
-
- for i in $FUNCS; do
- CheckForFunc $i || {
- Note "... emulate $i"
- PORTFUNCS="${PORTFUNCS-} $i.c"
- }
- done
- if [ "${PORTFUNCS-}" ]; then
- LIBPORT='../port/libport.a'
- PORT=yes
- else
- PORT=no
- fi
- fi
- if [ $PORT != yes ] ; then
- LIBPORT=
- PORTFUNCS=
- fi
- Note "Done checking system libraries."
-
- Note ""
- Note "Checking for Dynamic Shared Object (DSO) support."
- if [ "$DSO" = auto ]; then
- DSOSUF_VERSION=
- case $TARGET-$CC-$ISGCC in
- *-irix5.2*)
- if (findApp rld /lib:/usr/lib:$PATH) >/dev/null 2>&1; then
- DSOSUF=so
- DSOLD='${LD}'
- DSOOPTS='-elf -shared -no_unresolved -all'
- DSO=IRIX52
- fi
- ;;
- *-irix*)
- if (findApp rld /lib:/usr/lib:$PATH) >/dev/null 2>&1; then
- DSOSUF=so
- DSOLD="${CCOMPILER} ${ENVOPTS}"
- DSOOPTS='-shared -rdata_shared -check_registry ${SRCDIR}/port/irix/so_locations -quickstart_info'
- DSO=IRIX
- fi
- ;;
- *-aix*)
- DSOSUF=a
- DSOLD='${LD}'
- DSOOPTS='-r'
- LIBCOPTS="-bM\:SRE"
- DSO=AIX
- ;;
- *-hpux*)
- DSOSUF=sl
- DSOLD='${LD}'
- DSOOPTS='-b'
- LIBCOPTS="+Z"
- # LIBPORT="-Wl,+b${DIR_LIB}"
- DSO=HPUX
- ;;
- *-solaris*-yes)
- DSOSUF=so
- DSOLD='${LD}'
- DSOOPTS='-G'
- LIBCOPTS="-fpic"
- DSO=SOLARIS
- ;;
- *-solaris*)
- DSOSUF=so
- DSOLD='${LD}'
- DSOOPTS='-G'
- LIBCOPTS="-K PIC"
- DSO=SOLARIS
- ;;
- *-linux)
- if [ -x /lib/libc.so.5 ]; then
- DSOSUF=so.${DIST_MAJOR}
- DSOSUF_VERSION=${DSOSUF}.${DIST_MINOR}.${DIST_ALPHA}
- LIBCOPTS='-fPIC'
- DSOOPTS='-shared'
- DSO=LINUX
- fi
- ;;
- *-osf3*)
- DSOSUF=so
- DSOOPTS='-shared'
- DSO=OSF
- ;;
- *) DSO=no;;
- esac
- test -z "$DSOSUF_VERSION" && DSOSUF_VERSION=${DSOSUF}
- fi
- if [ "$DSO" != no ]; then
- JUNK="$JUNK t.${DSOSUF}"
- #
- # Check to make sure the compilers process
- # the DSO options in the expected way.
- #
- CheckCCDSO()
- {
- $RM t.c t.o t.${DSOSUF}
- cat>t.c<<EOF
- int f() { return 0; }
- EOF
- capture cat t.c
- runMake t \
- "t.o:; ${CCOMPILER} ${ENVOPTS} ${LIBCOPTS} -c t.c" \
- "t: t.o; ${DSOLD} ${DSOOPTS} -o t.${DSOSUF} t.o"
- }
- if CheckCCDSO; then
- Note "Looks like your system supports $DSO-style DSOs."
- else
- cat 1>&4 <<EOF
- Looks like your system supports $DSO-style DSOs...
- ... sigh, but $CCOMPILER does not support DSOs in the expected way.
- EOF
- DSO=no
- fi
- fi
- if [ "$DSO" = no ]; then
- DSOSUF=a DSOOPTS= LIBCOPTS=
- DSOSUF_VERSION=$DSOSUF
- fi
- Note "Done checking for DSO support."
-
- Note ""
- if [ "$LIBIMAGE" = auto ]; then
- if CheckForLibrary iopen -limage && CheckForIncludeFile gl/image.h; then
- Note "Looks like there is support for SGI RGB images."
- LIBIMAGE=yes
- else
- LIBIMAGE=no
- fi
- fi
- if [ "$LIBGL" = auto ]; then
- if CheckForLibrary winopen -lgl && CheckForIncludeFile gl.h; then
- Note "Looks like there is support for IRIS GL."
- LIBGL=yes
- else
- LIBGL=no
- fi
- fi
-
- test $LIBGL = no -a $LIBIMAGE = no || Note ""
- Note "Selecting programs used during installation."
-
-
- #
- # Miscellaneous ``little'' programs.
- #
- test -z "${CHMOD-}" && CHMOD=`findAppDef chmod $PATH chmod`
- test -z "${LN-}" && LN=`findAppDef ln $PATH ln`
- test -z "${SCRIPT_SH-}" && SCRIPT_SH=`findAppDef sh $PATH sh`
- test -z "${SED-}" && SED=`findAppDef sed $PATH sed`
- test -z "${STRIP-}" && STRIP=`findAppDef strip $PATH strip`
-
- #
- # Check if mv -f is supported
- #
- if [ -z "${MV_F-}" ]; then
- $RM t.c; echo "">t.c
- if mv -f t.c t.o; then
- Note "Looks like mv supports the -f option to force a move."
- MV_F=-f
- else
- Note "Warning, looks like mv has no -f option to force move operations;"
- Note "... this may cause problems during installation."
- MV_F=
- fi
- fi
-
- #
- # Check if ln -s creates a symbolic link.
- #
- if [ -z "${LN_S-}" ]; then
- $RM t.c; $LN -s foo t.c && LN_S=-s
- fi
- if [ -n "$LN_S" ]; then
- Note "Looks like $LN supports the -s option to create a symbolic link."
- else
- Note "Warning, looks like $LN has no -s option to create symbolic links;"
- Note "... this may cause problems during installation."
- fi
-
- #
- # Pick install mechanism.
- #
- if [ -z "${INSTALL-}" ]; then
- case $TARGET in
- *-irix*) INSTALL=`findApp install /sbin:$PATH`;;
- *) INSTALL='${SHELL} ../port/install.sh';;
- esac
- fi
-
- Note "Done selecting programs."
-
- #
- # User-changable configuration parameters section.
- # Anything selected here is presented to the user
- # and may be interactively changed.
- #
-
- Note ""
- Note "Selecting default TIFF configuration parameters."
- Note ""
-
- #
- # Fill in any other configuration parameters not
- # setup in the site and local files.
- #
-
- bitchExecutable()
- {
- echo ""
- echo "Warning, $1 does not seem to be an executable program;"
- echo "you'll need to correct this before starting up the fax server."
- echo ""
- }
-
- #
- # Setup manual page-related stuff.
- #
- # Manual pages are processed according to:
- # 1. Section organization (BSD or System V)
- # 2. Pre-formatted (w/ nroff) or source.
- # 3. Compressed (compress, gzip, pack) or uncompressed.
- # 4. Whether or not the FlexFAX ``F'' suffix must be
- # stripped for pages to be found (only for 4F pages).
- #
- if [ -z "${DIR_MAN-}" ]; then
- MANPATH="
- $MANPATH
- /usr/local/man
- /usr/contrib/man
- /usr/catman/local
- "
- DIR_MAN=
- for i in $MANPATH; do
- test -d $i && { DIR_MAN=$i; break; }
- done
- test -z "$DIR_MAN" && DIR_MAN=/usr/local/man
- fi
- Note "Looks like manual pages go in $DIR_MAN."
- if [ -z "${MANSCHEME-}" ]; then
- case $TARGET in
- *-bsdi*|*-netbsd*) MANSCHEME=bsd-nroff-gzip-0.gz;;
- *-freebsd*) MANSCHEME=bsd-source-cat;;
- *-linux*) MANSCHEME=bsd-source-cat;;
- *-ultrix*) MANSCHEME=bsd-source-cat;;
- *-sunos*) MANSCHEME=bsd-source-cat-strip;;
- *-sysv[234]*) MANSCHEME=sysv-source-cat-strip;;
- *-hpux*) MANSCHEME=sysv-source-cat-strip;;
- *-solaris*) MANSCHEME=sysv-source-cat-strip;;
- *-aix*) MANSCHEME=sysv-source-strip;;
- *-isc*|*-sco*) MANSCHEME=sysv-source-cat;;
- *-irix*) MANSCHEME=sysv-nroff-compress-Z;;
- *)
- #
- # Try to deduce the setup from existing manual pages.
- # XXX needs more work XXX
- #
- MANSCHEME=sysv-source-cat
- if [ -d /usr/share/man ]; then
- if [ -d /usr/share/man/u_man ]; then
- MANSCHEME=sysv-source-cat
- elif [ -d /usr/share/man/man8 ]; then
- MANSCHEME=bsd-source-cat
- fi
- elif [ -d /usr/share/catman ]; then
- if [ -d /usr/share/catman/u_man ]; then
- MANSCHEME=sysv-nroff-cat
- elif [ -d /usr/share/catman/man8 ]; then
- MANSCHEME=bsd-nroff-cat
- fi
- fi
- ;;
- esac
- fi
- Note "Looks like manual pages should be installed with $MANSCHEME."
-
- #
- # Figure out which brand of echo we have and define
- # prompt and print shell functions accordingly.
- #
- if [ `echo foo\\\c`@ = "foo@" ]; then
- prompt()
- {
- echo "$* \\c"
- }
- elif [ "`echo -n foo`@" = "foo@" ]; then
- prompt()
- {
- echo -n "$* "
- }
- else
- prompt()
- {
- echo "$*"
- }
- fi
-
- #
- # Prompt the user for a string that can not be null.
- #
- promptForNonNullStringParameter()
- {
- x="" val="$1" desc="$2"
- while [ -z "$x" ]; do
- prompt "$desc [$val]?"; read x
- if [ "$x" ]; then
- # strip leading and trailing white space
- x=`echo "$x" | sed -e 's/^[ ]*//' -e 's/[ ]*$//'`
- else
- x="$val"
- fi
- done
- param="$x"
- }
-
- promptForManPageScheme()
- {
- x=""
- while [ -z "$x" ]; do
- prompt "Manual page installation scheme [$MANSCHEME]?"; read x
- if [ "$x" ]; then
- # strip leading and trailing white space
- x=`echo "$x" | sed -e 's/^[ ]*//' -e 's/[ ]*$//'`
- # XXX do a better job of validating...
- case "$x" in
- bsd-nroff-cat*|sysv-nroff-cat*) ;;
- bsd-nroff-gzip*|sysv-nroff-gzip*) ;;
- bsd-nroff-comp*|sysv-nroff-comp*) ;;
- bsd-nroff-pack*|sysv-nroff-pack*) ;;
- bsd-source-cat*|sysv-source-cat*) ;;
- bsd-source-gzip*|sysv-source-gzip*) ;;
- bsd-source-comp*|sysv-source-comp*) ;;
- bsd-source-pack*|sysv-source-pack*) ;;
- *)
- cat <<EOF
-
- "$x" is not a valid manual page installation scheme. Schemes are
- constructed according to:
-
- <organization>-<formatting>-<compression>[-<suffix>]
-
- where:
-
- <organization> is either "bsd" for BSD-style section organization (e.g.
- file formats in section 5) or "sysv" for System V-style
- organization (e.g. file formats in section 4).
-
- <formatting> is either "nroff" to force installation of formatted
- materials (using nroff) or "source" to get the nroff
- source installed.
-
- <compression> is either the name of a program to compress the manual
- pages (gipz, compress, pack) or "cat" for uncompressed data.
-
- <suffix> is either the file suffix to convert installed pages to
- (e.g. 0.gz for gzip-compressed pages under BSD) or "strip"
- to force the normal ".4f" suffix to be converted to ".4"
- (or ".5" if using the BSD organization). If no -<suffix>
- is specified then filenames are not converted when they
- are installed.
-
- Common schemes are:
-
- bsd-nroff-gzip-0.gz compressed formatted pages for BSD
- bsd-source-cat nroff source w/ BSD organization
- sysv-source-cat-strip nroff source for SysV w/o .4f suffix
- sysv-source-cat nroff source for SysV as-is
-
- EOF
- x="";;
- esac
- else
- x="$MANSCHEME"
- fi
- done
- MANSCHEME="$x"
- }
-
- printConfig()
- {
- cat<<EOF
-
- TIFF configuration parameters are:
-
- [ 1] Directory for tools: $DIR_BIN
- [ 2] Directory for libraries: $DIR_LIB
- [ 3] Directory for include files: $DIR_INC
- [ 4] Directory for manual pages: $DIR_MAN
- [ 5] Manual page installation scheme: $MANSCHEME
-
- EOF
- }
-
- promptForParameter()
- {
- case $1 in
- 1) promptForNonNullStringParameter "$DIR_BIN" \
- "Directory to install tools"; DIR_BIN="$param"
- ;;
- 2) promptForNonNullStringParameter "$DIR_LIB" \
- "Directory to install libraries"; DIR_LIB="$param"
- ;;
- 3) promptForNonNullStringParameter "$DIR_INC" \
- "Directory to install include files"; DIR_INC="$param"
- ;;
- 4) promptForNonNullStringParameter "$DIR_MAN" \
- "Directory to install manual pages"; DIR_MAN="$param"
- ;;
- 5) promptForManPageScheme;;
- esac
- }
-
- checkJPEG()
- {
- if [ "${JPEG}" = yes ]; then
- test "`findHeader jpeglib.h`" || {
- cat<<EOF
-
- The set of libtiff include directories,
-
- DIRS_LIBINC=${DIRS_LIBINC}
-
- does not seem to be setup correctly; "jpeglib.h" was not found.
- This must be corrected if the JPEG support is to be enabled.
- Either fix the pathname or disable the JPEG support.
-
- EOF
- }
- test $SRCDIR_IS_LIBTIFF = yes || \
- test -d "${DIR_JPEGLIB:-/dev/null/no-such-file}" || {
- cat<<EOF
-
- The JPEG library directory, "${DIR_JPEGLIB}", does not seem to exist.
- This must be corrected if the JPEG support is to be enabled.
- Either fix the pathname or disable the JPEG support.
-
- EOF
- }
- fi
- }
-
- checkZIP()
- {
- if [ "${ZIP}" = yes ]; then
- test "`findHeader zlib.h`" || {
- cat<<EOF
-
- The set of libtiff include directories,
-
- DIRS_LIBINC=${DIRS_LIBINC}
-
- does not seem to be setup correctly; "zlib.h" was not found.
- This must be corrected if the (G)ZIP support is to be enabled.
- Either fix the pathname or disable the (G)ZIP support.
-
- EOF
- }
- test $SRCDIR_IS_LIBTIFF = yes \
- || test -d "${DIR_GZLIB:-/dev/null/no-such-file}" || {
- cat<<EOF
-
- The libgz library directory, "${DIR_GZLIB}", does not seem to exist.
- This must be corrected if the ZIP support is to be enabled.
- Either fix the pathname or disable the ZIP support.
-
- EOF
- }
- fi
- }
-
- if [ $NONINTERACTIVE = no ] ; then
- ok=skip
- while [ "$ok" != y ] && [ "$ok" != yes ]; do
- if [ "$ok" != skip ]; then
- for i in 1 2 3 4 5 6; do
- promptForParameter $i;
- done
- fi
- printConfig; prompt "Are these ok [yes]?"; read ok
- test -z "$ok" && ok=yes
- case "$ok" in
- [1-9]|1[0-7]) promptForParameter $ok;;
- [yY]*|[nN]*) continue;;
- ?*)
- echo ""
- echo "\"y\", \"yes\", or <RETURN> accepts the displayed parameters."
- echo "A number lets you change the numbered parameter."
- echo ""
- ;;
- esac
- ok=skip
- done
- checkJPEG
- checkZIP
- else
- checkJPEG
- checkZIP
- fi
-
- case $MANSCHEME in
- *-source-*) MANAPPS=man1 MANLIB=man3;;
- *-nroff-*) MANAPPS=cat1 MANLIB=cat3;;
- esac
- case $MANSCHEME in
- *-strip) MANSEDLOCAL="-e s/3T/3/g";;
- *) MANSEDLOCAL="";;
- esac
- case $MANSCHEME in
- *-source-*) MANCVT='${MANSED} $? >$@';;
- *-nroff-gzip-*) MANCVT='${MANSED} $? | nroff -man | gzip > $@';;
- *-nroff-pack-*) MANCVT='${MANSED} $? | nroff -man | pack > $@';;
- *-nroff-com*-*) MANCVT='${MANSED} $? | nroff -man | compress > $@';;
- *-nroff-cat-*) MANCVT='${MANSED} $? | nroff -man > $@';;
- esac
- case $MANSCHEME in
- *-0|*-0.gz|*-0.Z|*-gz|*-Z|*-z)
- suf=`echo $MANSCHEME | sed 's/.*-/./'`
- A='`echo $$i | sed' B='`' # workaround shell bugs
- MANAPPNAME="$A s/\\\\.1\$\$/$suf/$B"
- MANLIBNAME="$A s/\\\\.3t\$\$/$suf/$B"
- ;;
- *-strip)
- MANAPPNAME='$$i'
- MANLIBNAME='`echo $$i | sed s/\\.3t$$/.3/`'
- ;;
- *)
- MANAPPNAME='$$i' MANLIBNAME='$$i'
- ;;
- esac
-
- if [ "${JPEG}" = yes ]; then
- test -z "${CONF_JPEG-}" && CONF_JPEG="-DJPEG_SUPPORT"
- if test -z "${LIBJPEG-}" ; then
- LIBJPEG="-ljpeg"
- test -z "${DIR_JPEGLIB-}" || LIBJPEG="-L${DIR_JPEGLIB} ${LIBJPEG}"
- fi
- else
- CONF_JPEG=
- LIBJPEG=
- fi
- if [ "${ZIP}" = yes ]; then
- test -z "${CONF_ZIP-}" && CONF_ZIP="-DZIP_SUPPORT"
- if test -z "${LIBGZ-}" ; then
- LIBGZ="-lz"
- test -z "${DIR_GZLIB-}" || LIBGZ="-L${DIR_GZLIB} ${LIBGZ}"
- fi
- else
- CONF_ZIP=
- LIBGZ=
- fi
-
- Note ""
-
- #
- # Fixup a list of potentially relative pathnames so
- # that they work when used in a subdirectory. The
- # string sent to stdout has no extraneous spaces so
- # it can be used, for example, in building pathnames.
- #
- # NB: There's an extra echo done here so we get a
- # \n-terminated string passed to sed.
- #
- relativize()
- {
- echo `if [ $SRCDIR_IS_LIBTIFF = no ]; then
- (for i do
- case "$i" in
- /*|-l*) echo "$i" ;;
- -[LR]) ;; # XXX???
- -[LR]/*) echo "$i" ;;
- -L*) echo "$i" | sed 's;^-L;-L../;' ;;
- -R*) echo "$i" | sed 's;^-R;-R../;' ;;
- *) echo "../$i" ;;
- esac
- done) | tr '\012' ' '
- else
- echo "$@"
- fi` | sed -e 's;[ ][ ]*$;;' -e 's;/[.]$;;'
- }
- #
- # Generate a list of compiler include options,
- # prepending ``../'' to any relative pathnames.
- #
- makeIncArgs()
- {
- (for i do
- case "$i" in
- /*) echo "-I$i" ;;
- *)
- if [ $SRCDIR_IS_LIBTIFF = yes ]; then
- echo "-I$i"
- else
- echo "-I../$i"
- fi ;;
- esac
- done) | tr '\012' ' '
- }
-
- #
- # Setup parameters needed below.
- #
- if [ $SRCDIR_IS_LIBTIFF = yes ]; then
- CONFIGDIR="."
- LIBSRCDIR="${SRCDIR}"
- else
- CONFIGDIR=".."
- LIBSRCDIR=`relativize ${SRCDIR}`/libtiff
- fi
-
- # NB: these should be sorted alphabetically
- cat>>confsed<<EOF
- /@AR@/s;;${AR};g
- /@ALPHAFILE@/s;;`relativize ${ALPHAFILE}`;g
- /@AROPTS@/s;;${AROPTS};g
- /@CONFIGDIR@/s;;${CONFIGDIR};g
- /@CCOMPILER@/s;;${CCOMPILER};g
- /@CHMOD@/s;;${CHMOD};g
- /@CONF_JPEG@/s;;${CONF_JPEG};g
- /@CONF_ZIP@/s;;${CONF_ZIP};g
- /@COPT_LIBINC@/s;;`makeIncArgs ${DIRS_LIBINC}`;g
- /@DATE@/s;;${DATE};g
- /@DEPEND_JPEGLIB@/s;;${CONF_JPEG:+`findHeader jpeglib.h` `findHeader jerror.h`};g
- /@DEPEND_ZLIB@/s;;${CONF_ZIP:+`findHeader zlib.h`};g
- /@DIR_BIN@/s;;${DIR_BIN};g
- /@DIR_JPEGLIB@/s;;`relativize ${DIR_JPEGLIB}`;g
- /@DIR_GZLIB@/s;;`relativize ${DIR_GZLIB}`;g
- /@DIR_INC@/s;;${DIR_INC};g
- /@DIR_LIB@/s;;${DIR_LIB};g
- /@DIR_MAN@/s;;${DIR_MAN};g
- /@DIRS_LIBINC@/s;;`relativize ${DIRS_LIBINC}`;g
- /@DIST_ALPHA@/s;;${DIST_ALPHA};g
- /@DIST_MAJOR@/s;;${DIST_MAJOR};g
- /@DIST_MINOR@/s;;${DIST_MINOR};g
- /@DSO@/s;;${DSO};g
- /@DSOSUF@/s;;${DSOSUF};g
- /@DSOSUF_VERSION@/s;;${DSOSUF_VERSION};g
- /@ENVOPTS@/s;;${ENVOPTS};g
- /@FILLORDER@/s;;${FILLORDER};g
- /@GCOPTS@/s;;${GCOPTS};g
- /@INSTALL@/s;;${INSTALL};g
- /@LIBJPEG@/s;;`relativize ${LIBJPEG}`;g
- /@LIBGL@/s;;${LIBGL};g
- /@LIBGZ@/s;;`relativize ${LIBGZ}`;g
- /@LIBSRCDIR@/s;;${LIBSRCDIR};g
- /@LIBIMAGE@/s;;${LIBIMAGE};g
- /@LIBCOPTS@/s;;${LIBCOPTS};g
- /@LIBPORT@/s;;${LIBPORT};g
- /@LN@/s;;${LN};g
- /@LN_S@/s;;${LN_S};g
- /@MACHDEPLIBS@/s;;${MACHDEPLIBS};g
- /@MANAPPS@/s;;${MANAPPS};g
- /@MANAPPNAME@/s;;${MANAPPNAME};g
- /@MANLIBNAME@/s;;${MANLIBNAME};g
- /@MANCVT@/s;;${MANCVT};g
- /@MANSEDLOCAL@/s;;${MANSEDLOCAL};g
- /@MANLIB@/s;;${MANLIB};g
- /@MV_F@/s;;${MV_F};g
- /@PORT@/s;;${PORT};g
- /@PORTFUNCS@/s;;${PORTFUNCS};g
- /@RANLIB@/s;;${RANLIB};g
- /@SCRIPT_SH@/s;;${SCRIPT_SH};g
- /@SED@/s;;${SED};g
- /@SETMAKE@/s;;${SETMAKE};g
- /@SRCDIR@/s;;${SRCDIR};g
- /@RELSRCDIR@/s;;`relativize ${SRCDIR}`;g
- /@STRIP@/s;;${STRIP};g
- /@TARGET@/s;;${TARGET};g
- /@VERSION@/s;;${VERSION};g
- /@VERSIONFILE@/s;;`relativize ${VERSIONFILE}`;g
- /@WARNING@/s;;Warning, this file was automatically created by the TIFF configure script;g
- EOF
-
- SedConfigFiles()
- {
- for F do
- test -f $SRCDIR/$F.in || {
- bitch "$SRCDIR/$F.in is missing; this should be part of the distribution."
- boom
- }
- dir=`echo $F | $SED 's;/[^/]*$;;'`
- if [ $dir != $F ] && [ ! -d $dir ]; then
- Note "Creating $dir directory"
- mkdir $dir
- fi
- suffix=`echo $F | $SED 's/.*\.//'`
- if [ "$suffix" = h ]; then
- #
- # Compare old and new versions so that include files
- # are only updated when something has changed--this
- # saves time for subsequent makes. Note we screen
- # out use of @DATE@ 'cuz otherwise that'll mess up
- # the comparison (this assumes dates are used in lines
- # of the form DATE: @DATE@).
- #
- $RM $F.new; $SED -f confsed $SRCDIR/$F.in > $F.new
- $RM confx; $SED '/DATE:/d' $F.new >confx
- $RM confy; $SED '/DATE:/d' $F >confy 2>/dev/null
- if cmp -s confx confy >/dev/null 2>&1; then
- $RM $F.new
- else
- Note "Creating $F from $SRCDIR/$F.in"
- $RM $F; mv $F.new $F; $CHMOD 444 $F
- fi
- else
- Note "Creating $F from $SRCDIR/$F.in"
- if $SED -f confsed $SRCDIR/$F.in >$F.new; then
- $RM $F; mv $F.new $F; $CHMOD 444 $F
- else
- cat 1>&2 <<EOF
- Help, there was a problem crafting $F from $F.in.
- The command:
-
- $SED -f confsed $SRCDIR/$F.in >$F.new
-
- failed. Aborting without cleaning up files so you can take a look...
- EOF
- exit 1
- fi
- fi
- done
- }
-
- #
- # port/install.sh is the SGI install program emulator script.
- #
- CONF_FILES="Makefile"
- if [ $SRCDIR_IS_LIBTIFF != yes ] ; then
- CONF_FILES="$CONF_FILES
- libtiff/Makefile
- man/Makefile
- tools/Makefile
- port/install.sh
- "
- fi
-
- SedConfigFiles $CONF_FILES
- test $PORT = yes && SedConfigFiles port/Makefile
-
- Note "Done."
-
- $RM $JUNK
- exit 0
-